; 3nm FreePDK(TM) Custom Compiler Techfile
;
; Copyright (c) 2021, North Carolina State University
; All Rights Reserved.
;
; Please see the file LICENSE included with this distribution for license.
; You may not use these files except in compliance with the License.


controls(
	viewTypeUnits(
	;( viewType                userUnit        DBUPerUU )
	;( --------                --------        -- --------   )
		( maskLayout		   micron 	       2000	         )
		( schematic		       inch 		   160	         )
		( schematicSymbol	   inch 		   160	         )
		( netlist		       inch 		   160	         )
    	) ;viewTypeUnits


    	mfgGridResolution(
		( 0.0005 )
  	) ;mfgGridResolution

	
) ;controls



layerDefinitions(
	techPurposes(
		( fin              291        fin          )
		( color1           11         color1       )
		( color2           12         color2       )
	)


	techLayers(
		;( layerName  layerNum   abbreviation )
		;( ---------  --------   ------------ )
		 (    BPR          0          BPR     )
		 (    VBPR         1         VBPR     )
		 (     NW          2          NW      )
		 (    ACT          3          ACT     )	 
		 (    GATE         4         GATE     )
		 (    GCUT         5         GCUT     )
		 (   DUMMY         6         DUMMY    )
		 (    NIM          7          NIM     )
		 (    PIM          8          PIM     )
		 (    M0A          9          M0A     )
		 (    V0A         10          V0A     )
		 (    GCON        11         GCON     )
		 (    M0B         12          M0B     )
		 (    V0B         13          V0B     )
		 (     M1         14          M1      )
		 (     V1         15          V1      )
		 (     M2         16          M2      )
		 (     V2         17          V2      )
		 (     M3         18          M3      )
		 (     V3         19          V3      )
		 (     M4         20          M4      )
		 (     V4         21          V4      )
		 (     M5         22          M5      )
		 (     V5         23          V5      )
		 (     M6         24          M6      )
		 (     V6         25          V6      )
		 (     M7         26          M7      )
		 (     V7         27          V7      )
		 (     M8         28          M8      )
		 (     V8         29          V8      )
		 (     M9         30          M9      )
		 (     V9         31          V9      )
		 (     M10        32          M10     )
		 (     V10        33          V10     )
		 (     M11        34          M11     )
		 (     V11        35          V11     )
		 (     M12        36          M12     )
		 (     V12        37          V12     )
		 (     M13        38          M13     )
		 (     VRDL       39          VRDL    )
		 (     RDL        40          RDL     )
	) ;techLayers


	techLayerPurposePriorities(
		;(   layerName        purposeName  )
		;(   ---------        ------------ )
	 	 (   BPR               drawing     ) 
	 	 (   BPR               net         )
		 (   BPR               label       ) 
	 	 (   VBPR              drawing     )
	 	 (   VBPR              net         )
		 (   VBPR              label       )		 
	 	 (   NW                drawing     )
		 (   NW                label       )		 
		 (   ACT               drawing     )
		 (   ACT               net         )
		 (   ACT               label       )
	 	 (   GATE              drawing     ) 
	 	 (   GATE              net         )
		 (   GATE              label       )
	 	 (   GCUT              drawing     )
		 (   GCUT              label       )		 
	 	 (   DUMMY             drawing     )
		 (   DUMMY             label       )		 
	 	 (   NIM               drawing     )
		 (   NIM               label       )		 
	 	 (   PIM               drawing     )
		 (   PIM               label       )		 
	 	 (   M0A               drawing     )
	 	 (   M0A               net         )
		 (   M0A               label       )		 
	 	 (   V0A               drawing     )
	 	 (   V0A               net         )
		 (   V0A               label       )		 
	 	 (   GCON              drawing     )
	 	 (   GCON              net         )
		 (   GCON              label       )		 
	 	 (   M0B               drawing     )
	 	 (   M0B               net         )
		 (   M0B               label       )		 
	 	 (   V0B               drawing     ) 
	 	 (   V0B               net         )
		 (   V0B               label       ) 
	 	 (   M1                drawing     ) 
	 	 (   M1                net         )
		 (   M1                color1      ) 
		 (   M1                color2      )
		 (   M1                label       )
	 	 (   V1                drawing     )
	 	 (   V1                net         )
		 (   V1                label       )		 
	 	 (   M2                drawing     )
	 	 (   M2                net         )
		 (   M2                color1      )
		 (   M2                color2      )
		 (   M2                label       )
		 (   V2                drawing     )
		 (   V2                net         )
		 (   V2                label       )
		 (   M3                drawing     )
		 (   M3                net         )
		 (   M3                color1      )
		 (   M3                color2      )
		 (   M3                label       )		 
		 (   V3                drawing     )
		 (   V3                net         )
		 (   V3                label       )
		 (   M4                drawing     )
		 (   M4                net         )
		 (   M4                label       )
		 (   V4                drawing     )
		 (   V4                net         )
		 (   V4                label       )
		 (   M5                drawing     ) 
		 (   M5                net         )
		 (   M5                label       )
		 (   V5                drawing     )
		 (   V5                net         )
		 (   V5                label       )
		 (   M6                drawing     ) 
		 (   M6                net         )
		 (   M6                label       ) 
		 (   V6                drawing     )
		 (   V6                net         )
		 (   V6                label       )
		 (   M7                drawing     ) 
		 (   M7                net         )
		 (   M7                color1      ) 
		 (   M7                color2      ) 
		 (   M7                label       ) 
		 (   V7                drawing     )
		 (   V7                net         )
		 (   V7                label       )
		 (   M8                drawing     )
		 (   M8                net         )
		 (   M8                color1      )
		 (   M8                color2      )
		 (   M8                label       )		 
		 (   V8                drawing     )
		 (   V8                net         )
		 (   V8                label       )
		 (   M9                drawing     )
		 (   M9                net         )
		 (   M9                color1      )
		 (   M9                color2      )
		 (   M9                label       )		 
		 (   V9                drawing     )
		 (   V9                net         )
		 (   V9                label       )
		 (   M10               drawing     )
		 (   M10               net         )
		 (   M10               label       )		 
		 (   V10               drawing     )
		 (   V10               net         )
		 (   V10               label       )
		 (   M11               drawing     )
		 (   M11               net         )
		 (   M11               label       )
		 (   V11               drawing     )
		 (   V11               net         )
		 (   V11               label       )
		 (   M12               drawing     )
		 (   M12               net         )
		 (   M12               label       )
		 (   V12               drawing     )
		 (   V12               net         )
		 (   V12               label       )
		 (   M13               drawing     )
		 (   M13               net         )
		 (   M13               label       )
		 (   VRDL              drawing     )
		 (   VRDL              net         )
		 (   VRDL              label       )
		 (   RDL               drawing     )
		 (   RDL               net         )
		 (   RDL               label       )		 
	) ;techLayerPurposePriorities


	techDisplays(
		;(LayerName        purposeName      packet     vis  sel   con2ChgLy   drgEnbl  valid  [visibleOnly  [static]])
		;(---------        -----------      ------     ---  ---   ---------   -------  -----  -----------------------)
		 (ACT              drawing          ACT        t    t     nil         nil      t                             )
		 (ACT              net              ACTnet     t    t     nil         nil      nil                           )
		 (ACT              label            ACT        t    t     nil         nil      nil                           )
	   	 (BPR              drawing          BPR        t    t     nil         nil      t                             )
	   	 (BPR              net              BPRnet     t    t     nil         nil      nil                           )
		 (BPR              label            BPR        t    t     nil         nil      nil                           )		 
	   	 (NW               drawing          NW         t    t     nil         nil      t                             )
		 (NW               label            NW         t    t     nil         nil      nil                           )		 
	   	 (GATE             drawing          GATE       t    t     nil         nil      t                             )
	   	 (GATE             net              GATEnet    t    t     nil         nil      nil                           )
		 (GATE             label            GATE       t    t     nil         nil      nil                           )		 
	   	 (GCUT             drawing          GCUT       t    t     nil         nil      t                             )
		 (GCUT             label            GCUT       t    t     nil         nil      nil                           )		 
	   	 (DUMMY            drawing          DUMMY      t    t     nil         nil      t                             ) 
		 (DUMMY            label            DUMMY      t    t     nil         nil      nil                           )
	   	 (NIM              drawing          NIM        t    t     nil         nil      t                             )
		 (NIM              label            NIM        t    t     nil         nil      nil                           )		 
	   	 (PIM              drawing          PIM        t    t     nil         nil      t                             )
		 (PIM              label            PIM        t    t     nil         nil      nil                           )		 
	   	 (M0A              drawing          M0A        t    t     nil         nil      t                             )
	   	 (M0A              net              M0Anet     t    t     nil         nil      nil                           )
		 (M0A              label            M0A        t    t     nil         nil      nil                           )		 
	   	 (GCON             drawing          GCON       t    t     nil         nil      t                             )
	   	 (GCON             net              GCONnet    t    t     nil         nil      nil                           )
		 (GCON             label            GCON       t    t     nil         nil      nil                           )		 
	   	 (M0B              drawing          M0B        t    t     nil         nil      t                             )
	   	 (M0B              net              M0Bnet     t    t     nil         nil      nil                           )
		 (M0B              label            M0B        t    t     nil         nil      nil                           )		 
	   	 (VBPR             drawing          VBPR       t    t     nil         nil      t                             )
	   	 (VBPR             net              VBPRnet    t    t     nil         nil      nil                           )
		 (VBPR             label            VBPR       t    t     nil         nil      nil                           )		 
	   	 (V0A              drawing          V0A        t    t     nil         nil      t                             )
	   	 (V0A              net              V0Anet     t    t     nil         nil      nil                           )
		 (V0A              label            V0A        t    t     nil         nil      nil                           )		 
	   	 (V0B              drawing          V0B        t    t     nil         nil      t                             )
	   	 (V0B              net              V0Bnet     t    t     nil         nil      nil                           )
		 (V0B              label            V0B        t    t     nil         nil      nil                           )
		 (M1               drawing          M1         t    t     nil         nil      t                             )
		 (M1               net              M1net      t    t     nil         nil      nil                           )
		 (M1               color1          M1_pattern1 t    t     nil         nil      t                             )
		 (M1               color2          M1_pattern2 t    t     nil         nil      t                             )
		 (M1               label            M1         t    t     nil         nil      nil                           )		 
	   	 (V1               drawing          V1         t    t     nil         nil      t                             )
	   	 (V1               net              V1net      t    t     nil         nil      nil                           )
		 (V1               label            V1         t    t     nil         nil      nil                           )		 
		 (M2               drawing          M2         t    t     nil         nil      t                             )
		 (M2               net              M2net      t    t     nil         nil      nil                           )
		 (M2               color1          M2_pattern1 t    t     nil         nil      t                             )
		 (M2               color2          M2_pattern2 t    t     nil         nil      t                             )
		 (M2               label            M2         t    t     nil         nil      nil                           )		 
		 (V2               drawing          V2         t    t     nil         nil      t                             )
		 (V2               net              V2net      t    t     nil         nil      nil                           )
		 (V2               label            V2         t    t     nil         nil      nil                           )
		 (M3               drawing          M3         t    t     nil         nil      t                             )
		 (M3               net              M3net      t    t     nil         nil      nil                           )
		 (M3               color1          M3_pattern1 t    t     nil         nil      t                             )
		 (M3               color2          M3_pattern2 t    t     nil         nil      t                             )
		 (M3               label            M3         t    t     nil         nil      nil                           )		 
		 (V3               drawing          V3         t    t     nil         nil      t                             )
		 (V3               net              V3net      t    t     nil         nil      nil                           )
		 (V3               label            V3         t    t     nil         nil      nil                           )
		 (M4               drawing          M4         t    t     nil         nil      t                             )
		 (M4               net              M4net      t    t     nil         nil      nil                           )
		 (M4               label            M4         t    t     nil         nil      nil                           )		 
		 (V4               drawing          V4         t    t     nil         nil      t                             )
		 (V4               net              V4net      t    t     nil         nil      nil                           )
		 (V4               label            V4         t    t     nil         nil      nil                           )
		 (M5               drawing          M5         t    t     nil         nil      t                             )
		 (M5               net              M5net      t    t     nil         nil      nil                           )
		 (M5               label            M5         t    t     nil         nil      nil                           )		 
		 (V5               drawing          V5         t    t     nil         nil      t                             )
		 (V5               net              V5net      t    t     nil         nil      nil                           )
		 (V5               label            V5         t    t     nil         nil      nil                           )
		 (M6               drawing          M6         t    t     nil         nil      t                             )
		 (M6               net              M6net      t    t     nil         nil      nil                           )
		 (M6               label            M6         t    t     nil         nil      nil                           )		 
		 (V6               drawing          V6         t    t     nil         nil      t                             )
		 (V6               net              V6net      t    t     nil         nil      nil                           )
		 (V6               label            V6         t    t     nil         nil      nil                           )
		 (M7               drawing          M7         t    t     nil         nil      t                             )
		 (M7               net              M7net      t    t     nil         nil      nil                           )
		 (M7               color1          M7_pattern1 t    t     nil         nil      t                             )
		 (M7               color2          M7_pattern2 t    t     nil         nil      t                             )
		 (M7               label            M7         t    t     nil         nil      nil                           )		 
		 (V7               drawing          V7         t    t     nil         nil      t                             )
		 (V7               net              V7net      t    t     nil         nil      nil                           )
		 (V7               label            V7         t    t     nil         nil      nil                           )
		 (M8               drawing          M8         t    t     nil         nil      t                             )
		 (M8               net              M8net      t    t     nil         nil      nil                           )
		 (M8               color1          M8_pattern1 t    t     nil         nil      t                             )
		 (M8               color2          M8_pattern2 t    t     nil         nil      t                             )
		 (M8               label            M8         t    t     nil         nil      nil                           )		 
		 (V8               drawing          V8         t    t     nil         nil      t                             )
		 (V8               net              V8net      t    t     nil         nil      nil                           )
		 (V8               label            V8         t    t     nil         nil      nil                           )
		 (M9               drawing          M9         t    t     nil         nil      t                             )		 
		 (M9               net              M9net      t    t     nil         nil      nil                           )
		 (M9               color1          M9_pattern1 t    t     nil         nil      t                             )
		 (M9               color2          M9_pattern2 t    t     nil         nil      t                             )
		 (M9               label            M9         t    t     nil         nil      nil                           )
		 (V9               drawing          V9         t    t     nil         nil      t                             )
		 (V9               net              V9net      t    t     nil         nil      nil                           )
		 (V9               label            V9         t    t     nil         nil      nil                           )
		 (M10              drawing          M10        t    t     nil         nil      t                             )
		 (M10              net              M10net     t    t     nil         nil      nil                           )
		 (M10              label            M10        t    t     nil         nil      nil                           )
		 (V10              drawing          V10        t    t     nil         nil      t                             )
		 (V10              net              V10net     t    t     nil         nil      nil                           )
		 (V10              label            V10        t    t     nil         nil      nil                           )
		 (M11              drawing          M11        t    t     nil         nil      t                             )
		 (M11              net              M11net     t    t     nil         nil      nil                           )
		 (M11              label            M11        t    t     nil         nil      nil                           )		 
		 (V11              drawing          V11        t    t     nil         nil      t                             )
		 (V11              net              V11net     t    t     nil         nil      nil                           )
		 (V11              label            V11        t    t     nil         nil      nil                           )
		 (M12              drawing          M12        t    t     nil         nil      t                             )
		 (M12              net              M12net     t    t     nil         nil      nil                           )
		 (M12              label            M12        t    t     nil         nil      nil                           )		 
		 (V12              drawing          V12        t    t     nil         nil      t                             )
		 (V12              net              V12net     t    t     nil         nil      nil                           )
		 (V12              label            V12        t    t     nil         nil      nil                           )
		 (M13              drawing          M13        t    t     nil         nil      t                             )
		 (M13              net              M13net     t    t     nil         nil      nil                           )
		 (M13              label            M13        t    t     nil         nil      nil                           )		 
		 (VRDL             drawing          VRDL       t    t     nil         nil      t                             )
		 (VRDL             net              VRDLnet    t    t     nil         nil      nil                           )
		 (VRDL             label            VRDL       t    t     nil         nil      nil                           )
		 (RDL              drawing          RDL        t    t     nil         nil      t                             )
		 (RDL              net              RDLnet     t    t     nil         nil      nil                           )
		 (RDL              label            RDL        t    t     nil         nil      nil                           )
	) ;techDisplays


) ;layerDefinitions


layerRules(
	functions(
		;( layer     function      [maskNumber   [numberOfColorMasks [defaultColor]]])
		;( -----     --------      ---------     --------------      -----------)
		 ( BPR       metal         0                                            ) 
		 ( VBPR      cut           1                                           ) 
		 ( NW        diffusion     2                                            ) 
		 ( ACT       diffusion     3                                            )
		 ( GATE      poly          4                                            ) 
		 ( GCUT      recognition   5                                            ) 
		 ( DUMMY     poly          6                                            ) 
		 ( NIM       diffusion     7                                            ) 
		 ( PIM       diffusion     8                                            ) 
		 ( M0A    contactlessMetal 9                                            ) 
		 ( V0A       cut           10                                           ) 
		 ( GCON   contactlessMetal 11                                           ) 
		 ( M0B       metal         12                                           ) 
		 ( V0B       cut           13                                           ) 
		 ( M1        metal         14                                           ) 
		 ( V1        cut           15                                           ) 
		 ( M2        metal         16                                           ) 
		 ( V2        cut           17                                           ) 
		 ( M3        metal         18                                           ) 
		 ( V3        cut           19                                           ) 
		 ( M4        metal         20                                           ) 
		 ( V4        cut           21                                           ) 
		 ( M5        metal         22                                           ) 
		 ( V5        cut           23                                           ) 
		 ( M6        metal         24                                           ) 
		 ( V6        cut           25                                           ) 
		 ( M7        metal         26                                           ) 
		 ( V7        cut           27                                           ) 
		 ( M8        metal         28                                           ) 
		 ( V8        cut           29                                           ) 
		 ( M9        metal         30                                           ) 
		 ( V9        cut           31                                           ) 
		 ( M10       metal         32                                           ) 
		 ( V10       cut           33                                           ) 
		 ( M11       metal         34                                           ) 
		 ( V11       cut           35                                           ) 
		 ( M12       metal         36                                           ) 
		 ( V12       cut           37                                           ) 
		 ( M13       metal         38                                           )
		 ( VRDL      cut           39                                           ) 		 
		 ( RDL       metal         40                                           ) 
	) ;functions

	
	mfgResolutions(
		;( layer         mfgResolution )
		;( -----         ------------- )
		 ( ACT           0.0005        )
	 	 ( BPR           0.0005        )
	 	 ( NW            0.0005        )
	 	 ( GATE          0.0005        )
	 	 ( GCUT          0.0005        )
	 	 ( DUMMY         0.0005        )
	 	 ( NIM           0.0005        )
	 	 ( PIM           0.0005        )
	 	 ( M0A           0.0005        )
	 	 ( GCON          0.0005        )
	 	 ( M0B           0.0005        )
	 	 ( VBPR          0.0005        )
	 	 ( V0A           0.0005        )
	 	 ( V0B           0.0005        )
		 ( M1            0.0005        )
	 	 ( V1            0.0005        )
		 ( M2            0.0005        )
		 ( V2            0.0005        )
		 ( M3            0.0005        )
		 ( V3            0.0005        )
		 ( M4            0.0005        )
		 ( V4            0.0005        )
		 ( M5            0.0005        )
		 ( V5            0.0005        )
		 ( M6            0.0005        )
		 ( V6            0.0005        )
		 ( M7            0.0005        )
		 ( V7            0.0005        )
		 ( M8            0.0005        )
		 ( V8            0.0005        )
		 ( M9            0.0005        )
		 ( V9            0.0005        )
		 ( M10           0.0005        )
		 ( V10           0.0005        )
		 ( M11           0.0005        )
		 ( V11           0.0005        )
		 ( M12           0.0005        )
		 ( V12           0.0005        )
		 ( M13           0.0005        )
		 ( VRDL          0.0005        )
		 ( RDL           0.0005        )
	) ;mfgResolutions

	
	routingDirections( 
		;( layer         direction  ) 
		;( -----         --------   ) 
	) ;routingDirections

) ;layerRules

constraintGroups (
	( leCEConstraintGroup  
		( validRoutingLayers	( ACT BPR GATE M0A GCON M0B M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13) )
	);leCEConstraintGroup
) ;constraintGroups

	


